package com.nmgolden.lanxin;

import com.nmgolden.lanxin.exception.LanxinException;
import lombok.Data;

/**
 * 蓝信配置 相关值请在蓝信开发者中心中查看
 *
 * @author siger
 * @date 2021/10/18 6:17 下午 Wechat:Z2013111158
 */

@Data
public class LanxinAppConfig {
    /**
     * appId
     */
    private String appId;
    /**
     * appSecret
     */
    private String appSecret;
    /**
     * 蓝信网关
     */
    private String apiGateway;

    /**
     * 认证授权地址
     */
    private String authUrl;

    /**
     * 回调密钥
     */
    private String callbackSecret;

    /**
     * 回调签名令牌
     */
    private String callbackToken;

    /**
     * 蓝信 emc cookie domain
     */
    private String emcCookieDomain;

    /**
     * 服务器连接最大连接数
     */
    private int maxConnections = 400;
    /**
     * 每个主机最大连接数
     */
    private int maxConnectionsPerRoute = 400;

    /**
     * 核验配置对象
     * 出现异常直接抛出
     *
     * @param config 配置对象
     */
    public static void verify(LanxinAppConfig config) {
        if (config == null) {
            throw new LanxinException("尚未配置蓝信appId appSecret，请配置！");
        }

        if (config.getAppId() == null || config.getAppId().isEmpty()) {
            throw new LanxinException("蓝信appId不可为空!");
        }
        if (config.getAppSecret() == null || config.getAppSecret().isEmpty()) {
            throw new LanxinException("蓝信AppSecret不可为空!");
        }

        if (config.getApiGateway() == null || config.getApiGateway().isEmpty()) {
            throw new LanxinException("蓝信apiGateway不可为空!");
        }
    }

    /**
     * 获取组织id
     */
    public String getOrgId() {
        return getAppId().split("-")[0];
    }
}
